package com.frejoys.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.frejoys.common.dto.admin.UserWalletListDto;
import com.frejoys.common.vo.admin.UserWalletListVo;
import com.frejoys.common.vo.app.*;
import com.frejoys.dao.entity.UserWallet;

public interface UserWalletService extends IService<UserWallet> {

    default UserWallet getOnly(QueryWrapper<UserWallet> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }

    default UserWallet getOnly(LambdaQueryWrapper<UserWallet> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }

//
//    //用户钱包信息
//    UserWalletVo userWalletInfo(Long userId);

    //用户钱包
    UserWalletInfoVo userWalletDetails(Long userId);

    //余额
    UserWalletMoneyVo userWalletMoney(Long userId);

    //排队免单信息
    FreeOrderDetailsVo freeOrderDetails(Long userId);

    //达人推广佣金
    PromotionBrokerageDetailsVo promotionBrokerageDetails(Long userId);

    //代理推广佣金
    AgentBrokerageDetailsVo agentBrokerageDetails(Long userId);

    //管理员查询用户钱包信息
    IPage<UserWalletListVo> walletList(UserWalletListDto dto);
}
